# -*- coding: utf-8 -*-

from __future__ import absolute_import
from .. import plugin

class CopyToStagingPlugin(plugin.Plugin):
    def __init__(self):
        super(CopyToStagingPlugin,self).__init__()
        
    def Init(self,theContext, theConfiguration):
        super(CopyToStagingPlugin,self).Init(theContext,theConfiguration)
        if ( self._theContext != None):
            self._theContext._theLogger.Debug("CopyToStagingPlugin.Init appelé")
    
    # calcule la liste des choses à faire et renvoie un tuple contenant
    # le Nombre d'images
    # une liste d'objets à recevoir plus tard
    def ComputeSteps(self):
        if ( self._theContext != None):
            self._theContext._theLogger.Debug("CopyToStagingPlugin.ComputeSteps appelé")
            
        return xrange(5)
    
    # Donne une chance au plugin de se préparer à l'éxéction
    def Start(self):
        if ( self._theContext != None):
            self._theContext._theLogger.Debug("CopyToStagingPlugin.Start appelé")
    
    # Reçoit un élément de la liste calculée dans ComputeSteps et l'exécute
    def ExecuteStep(self,stepData):
        if ( self._theContext != None):
            self._theContext._theLogger.Info("CopyToStagingPlugin.ExecuteStep: stepData = %s ", (str(stepData)))
    
    # Est appelé après la boucle
    def End(self):
        if ( self._theContext != None):
            self._theContext._theLogger.Debug("CopyToStagingPlugin.End appelé")
   
    # Est appelé après la boucle et permet de nettoyer les traces du plugin dans le contexte
    def CleanUpContext(self):
        if ( self._theContext != None):
            self._theContext._theLogger.Debug("CopyToStagingPlugin.CleanUpContext appelé")
        
        
